﻿
#region Assembly mscorlib.dll, v4.0.30319
// C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\mscorlib.dll
#endregion

using System;
using System.Security;
using System.Diagnostics.CodeAnalysis;

namespace System.Diagnostics.Contracts
{
    /// Summary:
    ///     Provides methods and data for the System.Diagnostics.Contracts.Contract.ContractFailed
    ///     event.
    public sealed class ContractFailedEventArgs : EventArgs
    {
        /// Summary:
        ///     Provides data for the System.Diagnostics.Contracts.Contract.ContractFailed
        ///     event.
        ///
        /// Parameters:
        ///   failureKind:
        ///     One of the enumeration values that specifies the contract that failed.
        ///
        ///   message:
        ///     The message for the event.
        ///
        ///   condition:
        ///     The condition for the event.
        ///
        ///   originalException:
        ///     The exception that caused the event.
        [SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "failureKind"), SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "originalException"), SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "message"), SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "condition")]
        public ContractFailedEventArgs(ContractFailureKind failureKind, string message, string condition, Exception originalException) { }

        /// Summary:
        ///     Gets the condition for the failure of the contract.
        ///
        /// Returns:
        ///     The condition for the failure.
        [SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic")]
        public string Condition { get { return null; } }
        ///
        /// Summary:
        ///     Gets the type of contract that failed.
        ///
        /// Returns:
        ///     One of the enumeration values that specifies the type of contract that failed.
        [SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic")]
        public ContractFailureKind FailureKind { get { return 0; } }
        ///
        /// Summary:
        ///     Indicates whether the System.Diagnostics.Contracts.Contract.ContractFailed
        ///     event has been handled.
        ///
        /// Returns:
        ///     true if the event has been handled; otherwise, false.
        [SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic")]
        public bool Handled { get { return false; } }
        ///
        /// Summary:
        ///     Gets the message that describes the System.Diagnostics.Contracts.Contract.ContractFailed
        ///     event.
        ///
        /// Returns:
        ///     The message that describes the event.
        [SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic")]
        public string Message { get { return null; } }
        ///
        /// Summary:
        ///     Gets the original exception that caused the System.Diagnostics.Contracts.Contract.ContractFailed
        ///     event.
        ///
        /// Returns:
        ///     The exception that caused the event.
        [SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic")]
        public Exception OriginalException { get { return null; } }
        ///
        /// Summary:
        ///     Indicates whether the code contract escalation policy should be applied.
        ///
        /// Returns:
        ///     true to apply the escalation policy; otherwise, false. The default is true.
        [SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic")]
        public bool Unwind { get { return false; } }

        /// Summary:
        ///     Sets the System.Diagnostics.Contracts.ContractFailedEventArgs.Handled property
        ///     to true.
        [SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic"), SecurityCritical]
        public void SetHandled() { }
        ///
        /// Summary:
        ///     Sets the System.Diagnostics.Contracts.ContractFailedEventArgs.Unwind property
        ///     to true.
        [SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic"), SecurityCritical]
        public void SetUnwind() { }
    }
}

